// 一：安装并 加载 mongoose模块
const mongoose = require('mongoose');

// 二：链接本地Mongodb 数据库
mongoose.connect('mongodb://localhost:27017/School',(err)=>{
    if(!err){
        console.log("连接成功");
    }else{
        throw err;
    }
});

// 三：定义mongoose表结构   
var Schema = new mongoose.Schema({
    name: String,
    age: Number,
    createAt: {
        type: Date,   // 类型。
        required:true,   // 不能为空
        default:Date.now    // 默认。Date.now表示当前插入的时间，加了括号后表示当前调用时间
    }
},{collecation:'p'});   // ,{collecation:'tablep'}给表命名，基本上不使用,

// 四：创建 model模型              // "mongoose" 这个也是给表命名 经常用的
const studentModel = mongoose.model("mongoose",Schema)

// 增加数据
// studentModel.create({name:"songwenjun", age:2}).then(r=>{
//     console.log(r);
// })
var obj = new studentModel({
    name:"男",
    age:16,
})
obj.save((err)=>{
    if (err) {
        console.log(err);
    }
})


// 查询数据
// studentModel.findById("62971ca7dafabb411b31d273").then(r=>{
//     console.log(r);
// })

// 更改数据
// studentModel.updateOne({_id:"62971dd876ffd3a3737c865d"},{name:"干得漂亮"}).then(r=>{
//     console.log(r);
// })

// 删除数据
// studentModel.deleteOne({age:1}).then(r=>{
//     console.log(r);
// })


// 
// 五：创建实例
// const studentmong = new studentModel()


// studentmong.create({
//     name:"songwj",
//     age:16,
//     sex: "男",

// }),function(error, docs){
//     if(!error) console.log(docs);
// }

//创建模型，设计数据库
// cat就是集合名字，name:string就是字段类型
// 最后在数据库中显示的并不是Cat，而是cats
// const Cat = mongoose.model('mongoose', { name: String });

// 实例化一个cat对象，name:zildjian就是数据或者值
// const kitty = new Cat({ name: 'Zildjian' });
// 持久化实例，就是保存数据
// kitty.save().then(() => console.log('meow'));